import java.io.File;
import java.util.ArrayList;
import java.util.Formatter;
import java.util.List;

import org.jdom2.Attribute;
import org.jdom2.Element;


public class SerializadorPersonajes {
	private Pacman pacman;
	private List<Fantasma> fantasmas;
	
	public SerializadorPersonajes(Pacman pacman, List<Fantasma> fantasmas){
		this.pacman= pacman;
		this.fantasmas= fantasmas;
	}
	
	
	public void serializarPersonajes() {
		
		File file=new File(Config.XMLSALIDA_P);
		if (file.exists()) file.delete();
		
		XMLHandler archivoxml = new XMLHandler(Config.XMLSALIDA_P);
		Element elemento=new Element("juego");
		
		elemento.setAttributes(this.SerializarPacman());
		
		archivoxml.guardarElemento(elemento, 1);
		for (int i=0; i< this.fantasmas.size(); i++){
				FantasmaSerializable fs = new FantasmaSerializable(this.fantasmas.get(i),i+1);
				archivoxml.guardarSerializable(fs, archivoxml.getcantidadelementos()+1);
		}
		Config.cambiarSalidaPersonajes();
	}
	
	
	public ArrayList<Attribute> SerializarPacman() {
		Attribute att1 = new Attribute("posicionPacman", pacman.posicionActual.getid());
		Attribute att2 = new Attribute("fila", new Formatter().format("%02d", pacman.posicionActual.getX()).toString());
		Attribute att3 = new Attribute("columna", new Formatter().format("%02d", pacman.posicionActual.getY()).toString());
		Attribute att4 = new Attribute("sentido", pacman.direccion.name().toLowerCase());
		Attribute att5 = new Attribute("puntaje", "0");
		Attribute att6 = new Attribute("finJuego", String.valueOf(!pacman.isVivo())); 
		ArrayList<Attribute> lista=new ArrayList<Attribute>();
		lista.add(att1);
		lista.add(att2);
		lista.add(att3);
		lista.add(att4);
		lista.add(att5);
		lista.add(att6);
		return lista;
	}
	
	
}
